package com.cc.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cc.base.PageResponse;
import com.cc.base.ResponseResult;
import com.cc.pojo.domain.Menu;
import com.cc.pojo.domain.Router;
import com.cc.pojo.dto.MenuDto;
import com.cc.pojo.dto.MenuPageDto;
import com.cc.pojo.vo.MenuOptionsVo;
import com.cc.pojo.vo.MenuVo;
import com.cc.pojo.vo.OptionsVo;

import java.util.List;

public interface MenuService extends IService<Menu> {
    /**
     * 添加菜单
     * @param menuDto
     * @return
     */
    ResponseResult<String> addMenu(MenuDto menuDto);

    /**
     * 修改菜单
     * @param menuDto
     * @return
     */
    ResponseResult<String> updateMenu(MenuDto menuDto);

    /**
     * 分页查询菜单
     * @param menuPageDto
     * @return
     */
    ResponseResult<PageResponse<MenuVo>> getMenuPage(MenuPageDto menuPageDto);

    /**
     * 获取所有的目录级别
     * @return
     */
    ResponseResult<List<OptionsVo>> tableOfContents();

    /**
     * 获取动态路由
     * @return
     */
    ResponseResult<List<Router>> getMenuList( int userId);

    /**
     * 获取所有菜单列表
     * @return
     */
    ResponseResult<List<MenuOptionsVo>> allListOptions();
}
